Conventional computing devices enable data files to be accessed at a wide range of locations and times. For example, desktop computing devices enable files to be accessed at a specific location such as a home or an office, while a variety of portable computing devices enable data to be accessed at mobile locations such as in a car, train, or airport. The ability to access files at a wide range of locations and times enables users to employ multiple computing devices to work on a single file. For example, a user may begin work on a document using a desktop computer at his office, then do more work on the document using a portable computer on a train, then do more work on the document using a desktop computer at his home. The practice of using multiple computing devices to work on a single file has created a need to efficiently replicate files from one computing device to another.
One conventional method for replicating files from one computing device to another is server mastered replication. The term “server”, as used herein, refers to a computer that stores files that are accessed by another computer. The term “client”, as used herein, refers to a computer that accesses files stored at another computer. The term “master”, as used herein, refers to a file that controls the operation of another file. In server mastered replication, a master version of a file is stored on a server, and replicas of the master are stored on connected clients. Changes made to the master are propagated to the client replicas. One drawback of server mastered replication is that it may not be desirable to propagate changes to the client replicas. For example, even if a master file is deleted, it may be valuable not to delete a client replica.
Another conventional method for replicating files is file sharing, in which shared files may be accessed at other connected computing devices. A file may be made available for sharing by copying the file to a sharing folder. A service provider such as, for example, an Internet service provider (ISP) may operate a file sharing subscription service. The service provider may copy the contents of a sharing folder from a subscribing client to a server. The service provider may store the copied contents of the sharing folder at the server. The service subscriber may then make the contents of the sharing folder available to subscribers on other connected clients via the server.
There are several drawbacks to sharing folder replication. One such drawback is that files must be copied to the sharing folder from their source location. Such copying of files may be a time-consuming and tedious process. Furthermore, a user may have difficulty determining which copy of the file contains the most recent changes. Another drawback to sharing folder replication is that it is difficult for the user to achieve parity between the local folder structure he has organically created over the years and the sharing folder structure. The user must keep the local folder structure and the sharing folder structure in sync. If, for simplification, the user decides to use only the sharing folder structure, then he must copy all files from the local file structure. If all local files are copied, then they all must always be replicated, which results in a lot of storage space usage. The user is left with several management tasks with respect to synchronizing file structures and ensuring that the storage limit is not exceeded.
Thus, there is a need in the art for an efficient replication system in which a master version of a file may be created and stored at a client. Changes to the master may be replicated to connected computing devices such as a server. It is desired that the system enable individual files to be designated for replication without the need to copy such files to a special sharing folder.